package com.cskaoyan.javase.oop2._0encapsulate._1basic;

/**
 * 注意事项:
 * 1.Getter/Setter方法的写法显然十分固定
 *      可以直接使用快捷键Alt + Insert快速生成。
 *  特别强调: 类中私有化的成员变量,不要无脑都生成Getter/Setter方法
 *          要根据实际情况而定
 *
 * 2.String gender 性别 不推荐使用布尔类型的isMale或者isFemale
 * 对于boolean类型的成员变量来说，Getter方法的名字比较特殊，采用isXxx（Xxx是变量名）的形式。
 * 所以在很多Java开发规范中，都明确建议boolean类型的成员变量名不要命名为isXxx。
 *
 *
 * 3.实际开发中,Getter/Setter方法普遍都不是给程序员调用的,而是给框架使用的
 *      所以它的格式很固定,建议就使用自动生成的Getter/Setter方法,不要去修改里面的逻辑
 *      而且Getter/Setter方法格式,也是不给程序员用的
 *      它的价值是比较低的
 *      所以它一般放在类的结尾
 *
 * @since 14:35
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {

    }
}

class Teacher {
    private String gender;
    private double salary;
    private double bonus;
    private String name;
    private int age;
    private boolean isMale;
    private boolean flag;


    public Teacher() {
    }

    public Teacher(double salary, double bonus, String name, int age) {
        this.salary = salary;
        this.bonus = bonus;
        this.name = name;
        this.age = age;
    }

    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    /*
            布尔类型的Getter有特殊的格式
            写成isXxx的形式
            当布尔类型变量本身就叫"isXxx"时
            这时就出现了问题: 方法的名字就不能够去确定变量的名字了
            这时往往就会引发一些错误
         */
    public boolean isMale() {
        return isMale;
    }

    public void setMale(boolean male) {
        isMale = male;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public double getBonus() {
        return bonus;
    }

    public void setBonus(double bonus) {
        this.bonus = bonus;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


}